即S+(S+1)+(S+2)+...(S+N)>=D,求出N即可
#include <iostream>
using namespace std;
int main(){
long long int a,b;
while(cin>>a>>b){
long long int count=a,sum=0;
while(true){
sum+=count;
if(sum>=b)break;
count++;
}
cout<<count<<endl;
}
}
#include <iostream>
using namespace std;
int main()
{
int t,s,d,a,b;
cin>>t;
while(t--){
cin>>s>>d;
a=(s+d)/2;
b=(s-d)/2;
if((a+b)==s&&(a-b)==d&&b>0){
cout<<a<<" "<<b<<endl;
}
else {
cout<<"impossible"<<endl;
}
}
return 0;
}
#include<iostream>
using namespace std;
int main(){ //泡沫排序法
int i=0,n,l,swap,tmp,p;
cin>>n;
while(n>0){
cin>>l;
int length[l],swap=0,k=0;
while(k<l){ //放進陣列
cin>>p;
length[k]=p;
k++;
}
for(int i=0;i<l-1;i++){ //因為有j+1的問題,index error所以,所需檢查的陣列會減一
for(int j=0;j<l-1-i;j++){ //美交換一次,所需檢查的陣列會減一
if(length[j]>length[j+1]){
tmp=length[j]; //大的放暫時變數
length[j]=length[j+1]; //小的放進前一個
length[j+1]=tmp; //大的放進後一個,交換
swap++;
}
}
}
cout<<"Optimal train swapping takes " <<swap <<" swaps."<<endl;
n--;
}
}